<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        组件的插槽
        组件的插槽是为了让封装的组件更加具有扩展性
        让使用者可以决定组件内部的一些内容到底展示什么
        将共性抽取到组件中,将不同暴露为插槽
        预留了插槽,就可以让使用者根据自己的需求,决定插槽中插入什么内容
     -->
    <div id="app">
        <!-- 在使用组件时,由于组件预留了插槽,所以可以同时决定插槽的内容 -->
        <cpn></cpn>
        <cpn>
            <span>苏州大学</span>
        </cpn>
        <!-- 如果有多个值同时放入到组件中进行替换,会一起将其作为替换元素 -->
        <cpn>
            <i>养天地正气,法古今完人</i>
            <div>我是div元素</div>
        </cpn>
    </div>

    <template id="cpn">
        <div>
            <h2>我是组件</h2>
            <p>哈哈哈</p>
            <!-- 定义插槽,使其具备扩展性,可以直接定义空插槽,也可以在插槽中添加默认值 -->
            <!-- <slot></slot> -->
            <!-- 当使用者没有决定插槽的内容时,插槽就会显示默认值 -->
            <slot>
                <button>按钮</button>
            </slot>
        </div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '苏州大学'
            },
            components: {
                cpn: {
                    template: '#cpn'
                }
            }
        })
    </script>
</body>
</html>